package com.wonders.hisdoctor.station.project.treat.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.wonders.his.common.utils.validator.group.PrimaryGroup;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author 张澎_9970
 * @date 2021.3.3 下午 5:16 星期三
 * @desc: 治疗申请_列表_VO
 */
@Data
public class QueryTreatVo implements Serializable {

    private static final long serialVersionUID = 8489583943924697299L;

    /** db_field: VISIT_DATE; desc: 就诊日期：该医嘱对应挂号记录的就诊日期 */
    @ApiModelProperty("就诊日期：该医嘱对应挂号记录的就诊日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date visitDate;

    /** db_field: VISIT_NO; desc: 就诊序号：该医嘱对应挂号记录的就诊序号 */
    @ApiModelProperty("就诊序号：该医嘱对应挂号记录的就诊序号")
    private Integer visitNo;

    /** `主键` db_field: SERIAL_NO; desc: 流水号：对应OUTP_ORDERS中的流水号 */
    @ApiModelProperty("流水号：对应OUTP_ORDERS中的流水号")
    @NotNull(message = "流水号：对应OUTP_ORDERS中的流水号不能为空", groups = PrimaryGroup.class)
    private String serialNo;

    /** `主键` db_field: ITEM_NO; desc: 项目序号：同一就诊记录中检查治疗的顺序号 */
    @ApiModelProperty("项目序号：同一就诊记录中检查治疗的顺序号")
    @NotNull(message = "项目序号：同一就诊记录中检查治疗的顺序号不能为空", groups = PrimaryGroup.class)
    private Integer itemNo;

    /** db_field: ITEM_CLASS; desc: 项目类别：为检查、检验、处置等，使用代码，见临床项目分类字典 */
    @ApiModelProperty("项目类别：为检查、检验、处置等，使用代码，见临床项目分类字典")
    private String itemClass;

    /** db_field: ITEM_CODE; desc: 项目编码：项目对应的编码 */
    @ApiModelProperty("项目编码：项目对应的编码")
    private String itemCode;

    /** db_field: ITEM_NAME; desc: 项目名称：医嘱项目名称 */
    @ApiModelProperty("项目名称：医嘱项目名称")
    private String itemName;

    /** db_field: ITEM_SPEC; desc: 项目规格：项目的规格 */
    @ApiModelProperty("项目规格：项目的规格")
    private String itemSpec;

    /** db_field: UNITS; desc: 单位：项目单位 */
    @ApiModelProperty("单位：项目单位")
    private String units;

    /** db_field: AMOUNT; desc: 数量：医嘱项目总的数量,旧的长度为2 */
    @ApiModelProperty("数量：医嘱项目总的数量,旧的长度为2")
    private Integer amount;

    /** db_field: FREQUENCY; desc: 频次：项目执行的频度，如1/日，2/周等 */
    @ApiModelProperty("频次：项目执行的频度，如1/日，2/周等")
    private String frequency;

    /** db_field: PERFORMED_BY; desc: 执行科室：使用科室代码 */
    @ApiModelProperty("执行科室：使用科室代码")
    private String performedBy;

    /** db_field: COSTS; desc: 计价费用：按标准价格计算得到的本项目费用 */
    @ApiModelProperty("计价费用：按标准价格计算得到的本项目费用")
    private BigDecimal costs;

    /** db_field: CHARGES; desc: 实收费用：考虑费别等因素后的实际支付费用 */
    @ApiModelProperty("实收费用：考虑费别等因素后的实际支付费用")
    private BigDecimal charges;

    /** db_field: CHARGE_INDICATOR; desc: 收费标记：1-已收，0-未收 */
    @ApiModelProperty("收费标记：1-已收，0-未收")
    private Integer chargeIndicator;

    /** db_field: APPOINT_NO; desc: 检查检验申请单号：与检查查验等的接口的申请单号 */
    @ApiModelProperty("检查检验申请单号：与检查查验等的接口的申请单号")
    private String appointNo;

    /** db_field: APPOINT_ITEM_NO; desc: 加入申请项目序号：开具检查检验项目时的多项的序号 */
    @ApiModelProperty("加入申请项目序号：开具检查检验项目时的多项的序号")
    private Integer appointItemNo;

    /** db_field: INSURANCE_ATTR; desc: INSURANCE_ATTR */
    @ApiModelProperty("INSURANCE_ATTR")
    private Integer insuranceAttr;

    /** db_field: MATERNITY_INSUR_IND; desc: MATERNITY_INSUR_IND */
    @ApiModelProperty("MATERNITY_INSUR_IND")
    private Integer maternityInsurInd;

    @ApiModelProperty("执行科室名称")
    private String deptName;

    @ApiModelProperty("组合代码：如检验单唯一标识")
    private String combCode;

    @ApiModelProperty("组合名称：存放是检查、检验、治疗套餐或组合名称")
    private String combName;
}
